The term “rotary wing drone” is used herein to designate any known helicopter configuration having a plurality of motors, and in particular the twin rotor tandem or “banana” configuration, the Kamof configuration with contrarotating coaxial rotors, and most particularly the quadricopter or quadrirotor configuration having four fixed-pitch coplanar rotors having respective motors that are driven independently by an incorporated navigation and attitude control system.
A typical example of such a drone is the AR Drone from Parrot S A, Paris, France, which is a quadricopter fitted with a series of sensors (accelerometers and gyros on three axes, altimeter, vertically-aimed camera) together with a system for automatically stabilizing hovering flight on the principle described in WO 2009/109711 (Parrot). The drone also has a forward-facing camera for picking up an image of the scene to which the drone is going.
In such a quadricopter type drone, the rotary wing is constituted by four propulsion units each comprising a propeller driven by an electric motor via a system for reducing the generally very high speed of rotation of the motor. The drive motor in each propulsion unit is controlled by its own microcontroller, which is in turn driven as a function of flight parameters by a single central controller that is common to all of the propulsion units.
It can be understood that the flying quality of a drone having a plurality of propulsion units depends to a very large extent on the accuracy with which the microcontrollers that control the motors of the propulsion units are themselves driven by the central controller. The central controller is responsible for converting flying action set by the user into terms of drive signals for application to the microcontrollers of the motors.
Furthermore, it is essential for the commands that are applied to the motors to be executed perfectly synchronously, since it is not sufficient to give the microcontrollers appropriate drive signals, it is also necessary for those signals to reach them synchronously, given that the smallest time differences between those signals can lead to instabilities in the behavior of the drone.
One known method of controlling quadricopter type drones makes use of pulse-width modulation (PWM), which consists in modulating the width of a pulse for sending a corresponding setpoint to the microcontrollers of the motors. The advantage of that technique is that it can be applied to various types of motor, e.g. motors with or without brushes. Nevertheless, it cannot guarantee that the control of the motors is accurately synchronized between them.
Thus, an object of the present invention is to propose a method of synchronized control of a plurality of electric motors, each motor being controlled by a microcontroller and the set of microcontrollers being driven by a central controller, which method makes it possible under all circumstances to achieve perfect synchronization in the commands applied by the motors.
In accordance with the invention, this object is achieved by the fact that the method comprises:                a preliminary step consisting at least in establishing an asynchronous serial communications link over a line between the central controller and each of the microcontrollers, and in allocating an address parameter to each microcontroller; and        in operation, at least a control step proper consisting:                    for the central controller, in sending simultaneously on each link line a message containing at least one instruction specified by the address parameter of a destination microcontroller that is to execute said instruction; and            for each destination microcontroller, in extracting the instruction addressed thereto from said message, and executing it.                        
Thus, with a quadricopter type drone, for example, when the central controller needs to send to each of the four microcontrollers an instruction concerning the drive of the associated motor, it prepares a single message containing the four instructions each allocated to the address parameter of the corresponding microcontroller, and it sends that message simultaneously to all four microcontrollers on the four asynchronous serial communications lines. On reception, each microcontroller acts simultaneously to use the address parameter to extract from the message the instruction for that microcontroller and to drive the corresponding motor accordingly. In this way, control of all four motors is rigorously synchronized.
By way of example, said instruction is a speed setpoint value for application to each motor. This is naturally an instruction of major importance, since it governs how the drone flies. The messages concerning this speed instruction are transmitted with a periodicity of a few milliseconds.
Furthermore, the invention also provides for said instruction to be a command for controlling equipment associated with the motors. This provision presents the advantage that the equipment in question is driven without having recourse to additional link cables between the central controller placed in the main structure of the drone and the microcontrollers that are situated together with the associated motors at the ends of four arms projecting from the main structure. This avoids making the arms of the drone unnecessarily heavy.
Amongst the kinds of equipment that are envisaged, mention may be made of light-emitting diodes (LEDs) of different colors that may be driven by the central controller.
In order to enable information to be returned from the microcontrollers to the central controller, the invention provides for said instruction to be a request for data relating to the operation of the motors.
For example, if the central controller seeks to discover the speed of a motor, it may use the asynchronous serial link lines to send a message containing a speed request instruction specifying the address parameter of the microcontroller associated with the motor in question. On reception, only the destination microcontroller transmits a response message to the request by delivering the requested speed over the communications line. The other microcontrollers ignore the request message, since their own address parameters were not specified therein.
According to the invention, the preliminary step also consists in interposing an inhibit block on each link line for inhibiting communication on said line, said inhibit block being controlled by the central controller. This particular mode of communication between the central controller and the microcontrollers makes it possible, where necessary, to address only one microcontroller at a time.
This situation arises in particular during the initialization of the process, when the microcontrollers do not yet have respective address parameters. Under such circumstances, address parameters are allocated to the microcontrollers during the preliminary step by the controller using the inhibit blocks to send an address allocation message to each microcontroller, the message containing the corresponding address parameter.
Similarly, the invention advantageously proposes that the preliminary step should also consist in using the inhibit blocks to establish in succession between the central controller and at least one of the microcontrollers a protocol for reinitializing a firmware memory of said microcontroller.
It is thus possible to update the firmware contained in each memory in selective manner so as to ensure that all of the microcontrollers contain the same version of the firmware.
To this end, the method of the invention also includes at least one request step for requesting at least data relating to the firmware memory of each microcontroller and/or the associated motor.
In particular, said data is the version number of the firmware.
In general, the request step is performed by the central controller using the inhibit blocks to send a request message to at least one microcontroller, the message specifying said data, and the central controller waiting for the response from said microcontroller before sending a new message.
Finally, the invention provides a particular so-called “cutout” procedure for application whenever at least one motor cannot function in compliance with the instructions received, in particular the speed instruction, e.g. because the motor has just braked suddenly as a result of an article becoming caught in the propeller driven by the motor.
In the event of an engine failing, this cutout procedure consists in the associated microcontroller sending an emergency message to the central controller.
After receiving an emergency message, the central controller sends a message to the microcontrollers, said message containing a zero setpoint speed instruction for application to the motors.
In practice, the failure of a motor is detected from the value of the derivative of the motor speed, given that a sudden variation in the derivative indicates that there is an anomaly in the operation of the motor.